package cn.meng.base.common;

import cn.hutool.json.JSONObject;
import cn.meng.base.usedConst.ValidatorType;

/**
 * 单据业务操作公共校验类
 * @author Meng
 * @date 2021-09-27
 */
public class BaseValidator {

    /**
     * 校验入口
     * @param jsonObject
     * @param type
     */
    public void validation(JSONObject jsonObject, String type) {
        //根据操作类型去匹配对应的公共校验
        if(ValidatorType.INSERT.equals(type)) {
            insertValidation(jsonObject);
        }else if(ValidatorType.DELETE.equals(type)) {
            deleteValidation(jsonObject);
        }else if(ValidatorType.UPDATE.equals(type)) {
            updateValidation(jsonObject);
        }
        //特殊校验处理
        specialProcess(jsonObject);
    }

    /**
     * 新增的公共校验
     * @param jsonObject
     */
    public void insertValidation(JSONObject jsonObject) {

    }

    /**
     * 删除的公共校验
     * @param jsonObject
     */
    public void deleteValidation(JSONObject jsonObject) {

    }

    /**
     * 更新的公共校验
     * @param jsonObject
     */
    public void updateValidation(JSONObject jsonObject) {
        System.out.println("更新校验");
    }

    /**
     * 不同单据业务的特殊校验，子类复写该方法，完成自己的校验
     * @param jsonObject
     */
    public void specialProcess(JSONObject jsonObject) {}
}
